/**
 * 事件总线
 */
export class EventBus {
    // 声明一个Map类型的event属性
    event: Map<any, any[]> = new Map();

    emit(eventName: string, ...args: any[]): void {
        // 实现emit方法，根据eventName来触发相应的事件
        const listeners = this.event.get(eventName);
        if (listeners) {
            for (const listener of listeners) {
                listener(...args);
            }
        }
    }

    on(eventName: string, listener: (...args: any[]) => void): void {
        // 实现on方法，用于注册事件监听器
        const listeners = this.event.get(eventName) || [];
        listeners.push(listener);
        this.event.set(eventName, listeners);
    }
}

export default new EventBus();
